-
Notifications
You must be signed in to change notification settings - Fork 691
Feature: New POLYLINE command in Pilz planner for space trajectory generation #3610
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature: New POLYLINE command in Pilz planner for space trajectory generation #3610
Conversation
due to derivatives discontinuouties normal composite fail to Pose IK
|
May you review this ? |
EzraBrooks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one comment otherwise LGTM.
moveit_setup_assistant/moveit_setup_framework/src/srdf_config.cpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure "free" is the right title. Suggesting some other names:
- variable blend -->
variableBlendFromWaypoints() - motion sequence -->
sequenceFromWaypoints(). This is my favorite.
A free space planner typically means something like A* that is free to take any route to the goal.
AndyZe
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your triangle example seems to violate this? Did something change:
The planner cannot generate trajectories that contain three or more consecutive colinear waypoints (e.g., straight lines)
the triangle example uses only triangle's vertices. what I meant there by "straight lines" is pure straight line. |
Right, FREE is not appropriate. |
|
I'm not active on here these days, but I saw this pop up on my feed. I wanted to point out that this feature seems to do the same thing as https://moveit.picknik.ai/main/doc/how_to_guides/pilz_industrial_motion_planner/pilz_industrial_motion_planner.html#sequence-of-multiple-segments -- so I would recommend 2 things for the author and reviewers:
Hope this helps more so than adds noise! |
@sea-bass I tested both methods using points sampled from the ellipse: with the number of points in the planned joint_trajectory with the same max_cartesian_speed. I got: # This is with LIN commands and Sequence
[INFO] [1763959333.823367295] [cartesian_planning]: TrajPoints 408
# This is with the new Command
[INFO] [1763960677.326358520] [commands_loader]: TrajPoints : 29But Why 200 ellipse waypoints to 29 joint trajectory points???
|
|
@sea-bass I have changed the name to If possible, I would like to rename it to |
moveit_planners/pilz_industrial_motion_planner/src/planning_context_loader_polyline.cpp
Show resolved
Hide resolved
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #3610 +/- ##
==========================================
- Coverage 46.19% 46.12% -0.06%
==========================================
Files 720 726 +6
Lines 59181 59370 +189
Branches 7594 7614 +20
==========================================
+ Hits 27333 27381 +48
- Misses 31681 31822 +141
Partials 167 167 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Looks like you're failing CI - it would also be nice to get some code coverage here. a 0% covered diff makes me anxious! |
The failure is due to about code coverage (codecov) I really don't understand what it is!! |
edit algorithms loader to include the 4th POLYLINE COMMAND
|
Mr @EzraBrooks I have added two tests for max_cartesian_speed in 0120591 also, remove unrelated fix 👇 introduced in #3604 |
|
after I updated the branch, the CI / hamble failed due to something not related to pilz ?! |
|
@EzraBrooks |
|
what about @MatthijsBurgh's comment regarding |
|
@EzraBrooks |
Description
This pull request adds a new Pilz Industrial Planner command:
POLYLINE, which enables planning Cartesian polyline-space trajectories using waypoints.Added Classes
The workflow of these classes follows the same structure as the existing
CIRCandLINcommands.TrajectoryGeneratorPolylineMain class responsible for receiving the
MotionPlanRequestand setting up the polyline-space path.PathPolylineGeneratorHandles the generation of polyline paths using
KDL::Path_RoundedComposite.This class provides:
polylineFromWaypoints()– Adds and validates waypoints.computeBlendRadius()– Computes the maximum feasible rounding radius, scaled by thesmoothnessfactor.checkConsecutiveColinearWaypoints()– Detects and throws an error if three consecutive colinear points are found (handled insetPolylinePath()).Limitations
This is a limitation of
KDL::Path_RoundedComposite.When such a case is detected, an error is thrown and the plan is rejected.
Usage Example
An example of how to use the
POLYLINEcommand withMotionSequenceItem:Tests
triangles with different smoothness:
points generated from external parametric curve:
Checklist